More typed arrays in the FrameTable (and a flags column) - #6173
Draft
mstange wants to merge 1 commit into
Draft
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #6173 +/- ##
==========================================
+ Coverage 83.79% 83.82% +0.03%
==========================================
Files 350 351 +1
Lines 37583 37746 +163
Branches 10459 10652 +193
==========================================
+ Hits 31492 31640 +148
- Misses 5664 5677 +13
- Partials 427 429 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
mstange
force-pushed
the
frametable-flags
branch
2 times, most recently
from
July 15, 2026 19:22
b9ad978 to
c49cdae
Compare
mstange
force-pushed
the
frametable-flags
branch
from
August 19, 2026 19:44
c49cdae to
62e25c6
Compare
So far, the columns we've converted to typed arrays were either always non-empty, or they used -1 as the "no value" sentinel. For the FrameTable, I've opted to not to use -1 sentinel values, and instead have a flags column with a "HasXYZ" flag for each column (e.g. FrameFlags.HasAddress), for the following reasons: - I'd like to use U8 and U16 arrays for the category and subcategory columns. That's already what we use in the derived StackTable. With an external flag we can go up to 256 subcategories without having to use 16 bits. - I'm changing the inlineDepth column into just a "is inline" bool. This is a good fit for a flag. - The address column was using -1 as the "no address" sentinel; having the flag lets us use U32 instead of I32 for the address column and have relative addresses for 4GiB binaries rather than just 2GiB. An alternative I considered (but discarded) was to have a bitset for each column. E.g. one "isInlined" bitset where, in the JSON, each item is a U8 with the bits for 8 different frames. And similarly we could have a "hasCategory" bitset. But that was too many extra columns in my opinion.
mstange
force-pushed
the
frametable-flags
branch
from
August 19, 2026 19:44
62e25c6 to
ef6c4ae
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Main | Deploy preview